HTTPS 權威指南:在服務器和 Web 應用上部署 SSL/TLS 和 PKI

HTTPS 權威指南:在服務器和 Web 應用上部署 SSL/TLS 和 PKI

作者: 伊萬·裡斯蒂奇 (Ivan Risti?)
出版社: 人民郵電
出版在: 2016-09-01
ISBN-13: 9787115432728
ISBN-10: 7115432724
裝訂格式: 平裝
總頁數: 417 頁




內容描述


萬·裡斯蒂奇著楊洋、李振宇、蔣鍔、周輝、陳傳文譯的《HTTPS權威指南(在服務器和Web應用上部署SSL\TLS和PKI)/圖靈程序設計叢書》是集理論、協議細節、漏洞分析、部署建議於一體的詳盡Web應用安全指南。書中具體內容包括:密碼學基礎,TLS協議,PKI體系及其安全性,HTTP和瀏覽器問題,協議漏洞:最新的攻擊形式,如BEAST、CRIME、BREACH、Lucky 13等;詳盡的部署建議;如何使用OpenSSL生成密鑰和確認信息;如何使用Apache httpd、IIS、Nginx等進行安全配置。
    本書適合Web開發人員、系統管理員和所有對Web應用安全感興趣的讀者。


目錄大綱


第1章SSL、TLS和密碼學1 
1.1傳輸層安全1 
1.2網絡層2 
1.3協議歷史3 
1.4密碼學4 
1.4.1構建基塊4 
1.4.2協議12 
1.4.3攻擊密碼13 
1.4.4衡量強度13 
1.4.5中間人攻擊15 
 
第2章協議19 
2.1記錄協議19 
2.2握手協議21 
2.2.1完整的握手21 
2.2.2客戶端身份驗證26 
2.2.3會話恢復28 
2.3密鑰交換29 
2.3.1 RSA密鑰交換30 
2.3.2 Diffie-Hellman密鑰交換31 
2.3.3橢圓曲線Diffie-Hellman密鑰交換33 
2.4身份驗證34 
2.5加密34 
2.5.1序列加密34 
2.5.2分組加密35 
2.5.3已驗證的加密36 
2.6重新協商37 
2.7應用數據協議38 
2.8警報協議38 
2.9關閉連接39 
2.10密碼操作39 
2.10.1偽隨機函數39 
2.10.2主密鑰40 
2.10.3密鑰生成40 
2.11密碼套件41 
2.12擴展42 
2.12.1應用層協議協商43 
2.12.2證書透明度44 
2.12.3橢圓曲線功能44 
2.12.4心跳45 
2.12.5次協議協商46 
2.12.6安全重新協商47 
2.12.7服務器名稱指示47 
2.12 .8會話票證48 
2.12.9簽名算法48 
2.12.10 OCSP sta pling 49 
2.13協議限制49 
2.14協議版本間的差異50 
2.14.1 SSL 3 50 
2.14.2 TLS 1.0 50 
2.14.3 TLS 1.1 50 
2.14.4 TLS 1.2 51 

第3章公鑰基礎設施52 
3.1互聯網公鑰基礎設施52 
3.2標準54 
3.3證書55 
3.3.1證書字段55 
3.3.2證書擴展57 
3.4證書鏈58 
3.5信賴方60 
3.6證書頒發機構61 
3.7證書生命週期62 
3.8吊銷63 
3.9弱點63 
3.10根密鑰洩露65 
3.11生態系統評估66 
3.12進步68 
 
第4章攻擊PKI 71 
4.1 VeriSign簽發的Microsoft代碼簽名證書71 
4.2 Thawte簽發的login.live.com 72 
4.3 StartCom違規(2008) 72 
4.4 CertStar(Comodo)簽發的Mozilla證書73 
4.5偽造的RapidSSL CA證書73 
4.5.1前綴選擇碰撞攻擊75 
4.5.2創建碰撞證書75 
4.5.3預測前綴76 
4.5.4接下來發生的事78 
4.6 Comodo代理商違規78 
4.7 StartCom違規(2011) 80 
4.8 DigiNotar 80 
4.8.1公眾的發現80 
4.8.2一個證書頒發機構的倒下81 
4.8.3中間人攻擊82 
4.8.4 ComodoHacker宣布負責83 
4.9 DigiCert Sdn. Bhd. 85 
4.10火焰 病毒85 
4.10.1火焰病毒對抗Windows更新86 
4.10.2火焰病毒對抗Windows終端服務87 
4.10.3火焰病毒對抗MD5 88 
4.11 TURKTRUST 89 
4.12 ANSSI 90 
4.13印度國家信息中心91 
4.14廣泛存在的SSL竊聽91 
4.14. 1 Gogo 91 
4.14.2 Superfish和它的朋友們92 
4.15 CNNIC 93 

第5章http和瀏覽器問題95 
5.1 sidejacking 95 
5.2 Cookie竊取97 
5.3 Cookie篡改98 
5.3.1了解http Cookie 98 
5.3.2 Cookie篡改攻擊99 
5.3.3影響102 
5.3.4緩解方法103 
5.4 SSL剝離103 
5.5中間人攻擊證書104 
5.6證書警告105 
5.6.1為什麼有這麼多無效證書107 
5.6.2證書警告的效果108 
5.6.3點擊—通過式警告與例外109 
5.6.4緩解方法110 
5.7安全指示標誌110 
5.8混合內容112 
5.8.1根本原因112 
5.8.2影響114 
5.8.3瀏覽器處理114 
5.8.4混合內容的流行程度116 
5.8.5緩解方法117 
5.9擴展驗證證書118 
5.10證書吊銷119 
5.10.1客戶端支持不足119 
5.10.2吊銷檢查標準的主要問題119 
5.10.3證書吊銷列表120 
5.10 .4在線證書狀態協議122 

第6章實現問題127 
6.1證書校驗缺陷127 
6.1.1在庫和平台中的證書校驗缺陷128 
6.1.2應用程序校驗缺陷131 
6.1.3主機名校驗問題132 
6.2隨機數生成133 
6.2.1 Netscape Navigator瀏覽器(1994) 133 
6.2.2 Debian(2006) 134 
6.2.3嵌入式設備熵不足問題135 
6.3心臟出血137 
6.3.1影響137 
6.3.2緩解方法139 
6.4 FREAK 139 
6.4.1出口密碼140 
6.4.2攻擊140 
6.4.3影響和緩解方法143 
6.5 Logjam 144 
6.5.1針對不安全DHE密鑰交換的主動攻擊144 
6.5.2針對不安全DHE密鑰交換的預先計算攻擊145 
6.5.3針對弱DH密鑰交換的狀態—水平威脅146 
6.5.4影響147 
6.5.5緩解方法148 
6.6協議降級攻擊148 
6.6.1 SSL 3中的回退保護149 
6.6.2互操作性問題149 
6.6.3自願協議降級152 
6.6.4 TLS 1.0和之後協議的回退保護153 
6.6.5攻擊自願協議降級154 
6.6.6現代回退防禦154 
6.7截斷攻擊156 
6.7.1截斷攻擊的歷史157 
6.7.2 Cookie截斷157 
6.8 署上的弱點159 
6.8.1虛擬主機混淆159 
6.8.2 TLS會話緩存共享160 

第7章協議攻擊161 
7.1不安全重新協商161 
7.1.1為什麼重新協商是不安全的162 
7.1.2觸發弱點162 
7.1 .3針對http協議的攻擊163 
7.1.4針對其他協議的攻擊166 
7.1.5由架構引入的不安全重新協商問題167 
7.1.6影響167 
7.1.7緩解方法167 
7.1.8漏洞發現和補救時間表168 
7.2 BEAST 169 
7.2.1 BEAST的原理170 
7.2.2客戶端緩解方法173 
7.2.3服務器端緩解方法175 
7.2.4歷史176 
7.2.5影響177 
7.3壓縮旁路攻擊178 
7.3.1壓縮預示如何生效178 
7.3.2攻擊的歷史180 
7.3.3 CRIME 181 
7.3.4針對TLS和SPDY攻擊的緩解方法187 
7.3.5針對http壓縮攻擊的緩解方法188 
7.4 Lucky 13 189 
7.4.1什麼是填充預示189 
7.4. 2針對TLS的攻擊190 
7.4.3影響191 
7.4.4緩解方法191 
7.5 RC4缺陷192 
7.5.1密鑰調度弱點192 
7.5.2單字節偏差193 
7.5.3前256字節偏差194 
7.5.4雙字節偏差196 
7.5.5針對密碼進行攻 的改進196 
7.5.6緩解方法:RC4與BEAST、Lucky 13和POODLE的比較197 
7.6三次握手攻擊198 
7.6.1攻擊198 
7.6.2影響202 
7.6.3先決條件203 
7.6.4緩解方法203 
7.7 POODLE 204 
7.7.1實際攻擊207 
7.7.2影響208 
7.7.3緩解方法208 
7.8 Bullrun 209 

第8章部署212 
8.1密鑰212 
8.1.1密鑰算法212 
8.1.2密鑰長度213 
8.1.3密鑰管理213 
8.2證書215 
8.2.1證書類型215 
8.2.2證書主機名215 
8.2.3證書共享216 
8.2.4簽名算法216 
8.2.5證書鏈217 
8.2.6證書吊銷218 
8.2.7選擇合適的CA 218 
8.3協議配置219 
8.4密碼套件配置220 
8.4.1服務器密碼套件配置優先220 
8.4.2加密強度220 
8.4.3前向保密221 
8.4.4性能222 
8.4.5互操作性222 
8.5服務器配置和架構223 
8.5.1共享環境223 
8.5.2虛擬安全託管223 
8.5.3會話緩存223 
8.5.4複雜體系結構224 
8.6問題緩解方法225 
8.6.1重新協商225 
8.6.2 BEAST(http) 225 
8.6.3 CRIME(http) 225 
8.6.4 Lucky 13 226 
8.6.5 RC4 226 
8.6.6 TIME和BREACH(http) 227 
8.6.7三次握手攻擊227 
8.6.8心臟出血228 
8.7釘扎228 
8.8 http 228 
8.8.1充分利用加密228 
8.8.2 Cookie安全229 
8.8.3後端證書和域名驗證229 
8.8.4 http嚴格傳輸安全229 
8.8.5內容安全策略230 
8.8.6協議降級保護230 

第9章性能優化231 
9.1延遲和連接管理232 
9.1.1 TCP優化232 
9.1.2長連接234 
9.1.3 SPDY、http 2.0以及其他235 
9.1.4內容分發網絡235 
9.2 TLS協議優化237 
9.2.1密鑰交換237 
9.2.2證書240 
9.2.3吊銷檢查242 
9.2.4會話恢復243 
9.2.5傳輸開銷243 
9.2.6對稱加密244 
9.2.7 TLS記錄緩存延遲246 
9.2.8互操作性247 
9.2.9硬件加速247 
9.3拒絕服務攻擊248 
9.3.1密鑰交換和加密CPU開銷249 
9.3.2客戶端發起的重新協商250 
9.3.3優化過的TLS拒絕服務攻擊250 

第10章http嚴格傳輸安全、內容安全策略和釘扎251 
10.1 http嚴格傳輸安全251 
10.1.1配置HSTS 252 
10.1.2確保主機名覆蓋253 
10.1.3 Cookie安全253 
10.1 .4攻擊向量254 
10.1.5瀏覽 支持255 
10.1.6強大的部署清單256 
10.1.7隱私問題257 
10.2內容安全策略257 
10.2.1防止混合內容問題258 
10.2.2策略測試259 
10.2.3報告259 
10.2.4瀏覽器支持259 
10.3釘扎260 
10.3.1釘扎的對象261 
10.3.2在哪裡釘扎262 
10.3.3應該使用釘扎嗎263 
10.3.4在本機應用程序中使用釘扎263 
10.3.5 Chrome公鑰釘扎264 
10.3. 6 Microsoft Enhanced Mitigation Experience Toolkit 265 
10.3.7 http公鑰釘扎擴展265 
10.3.8 DANE 267 
10.3.9證書密鑰可信保證270 
10.3.10證書頒發機構授權271 

第11章OpenSSL 272 
11.1入門272 
11.1. 1確定OpenSSL版本和配置273 
11.1.2構建OpenSSL 274 
11.1.3查看可用命令275 
11.1.4創建可信證書庫276 
11.2密鑰和證書管理277 
11.2.1生成密鑰277 
11.2.2創建證書籤名申請280 
11.2.3用當前證書生成CSR文件282 
11.2.4非交互方式生成CSR 282 
11.2.5自簽名證書283 
11.2.6創建對多個主機名有效的證書283 
11.2.7檢查證書284 
11.2.8密鑰和證書格 轉換286 
11.3配置288 
11.3.1選擇密碼套件288 
11.3.2性能298 
11.4創建私有證書頒發機構300 
11.4.1功能和限制301 
11.4.2創建根CA 301 
11.4.3創建二級CA 306 

第12章使用OpenSSL進行測試309 
12.1連接SSL服務309 
12.2測試升級到SSL的協議312 
12.3使用不同的握手格式313 
12.4提取遠程證書313 
12.5測試支持的協議314 
12.6測試支持的密碼套件314 
12.7測試要求包含SNI的服務器315 
12.8測試會話復用316 
12.9檢查OCSP吊銷狀態316 
12.10測試OCSP stapling 318 
12.11檢查CRL吊銷狀態319 
12.12測試重新協商321 
12.13測試BEAST漏洞322 
12.14測試心臟出血323 
12.15確定Diffie-Hellman參數的強度325 

第13章配置Apache 327 
13.1安裝靜態編譯OpenSSL的Apache 328 
13.2啟用TLS 329 
13.3配置TLS協議329 
13.4配置密鑰和證書330 
13.5配置多個密鑰331 
13.6通配符和多站點證書332 
13.7虛擬安全託管333 
13.8為錯誤消息保留默認站點334 
13.9前向保密335 
13.10 OCSP stapling 336 
13.10.1配置OCSP stapling 336 
13.10.2處理錯誤337 
13.10.3使用自定義OCSP響應程序338 
13.11配置臨時的DH密鑰交換338 
13.12 TLS會話管理338 
13.12.1獨立會話緩存338 
13.12.2獨立會話票證339 
13.12.3分佈式會話緩存340 
13.12.4分佈式會話票證341 
13.12.5禁用會話票證342 
13.13客戶端身份驗證343 
13.14緩解協議問題344 
13.14.1不安全的重新協商344 
13.14.2 BEAST 344 
13.14.3 CRIME 344 
13.15部署http嚴格傳輸安全345 
13.16監視會話緩存狀態346 
13.17記錄協商的TLS參數346 
13.18使用mod_sslhaf的高級日誌記錄347 

第14章配置Java和Tomcat 349 
14.1 Java加密組件349 
14.1. 1無限制的強加密350 
14.1.2 Provider配置350 
14.1.3功能概述351 
14.1.4協議漏洞352 
14.1.5互操作性問題352 
14.1.6屬性配置調優354 
14.1.7常見錯誤消息355 
14.1. 8保護Java Web應用358 
14.1.9常見密鑰庫操作362 
14.2 Tomcat 366 
14.2.1 TLS配置369 
14.2.2 JSSE配置371 
14.2.3 APR和 OpenSSL配置373 

第15章配置Microsoft Windows和IIS 375 
15.1 Schannel 375 
15.1.1功能概述375 
15.1.2協議漏洞377 
15.1.3互操作性問題377 
15.2 Microsoft根證書計劃379 
15.2.1管理系統可信證書庫379 
15.2.2導入可信證書380 
15.2.3可信證書黑名單380 
15.2.4禁用根證書自動更新380 
15.3配置380 
15.3.1 Schannel配置381 
15.3.2密碼套件配置382 
15.3.3密鑰和簽名限制384 
15.3.4重新協商配置389 
15.3.5配置會話緩存390 
15.3.6監控會話緩存391 
15.3.7 FIPS 140-2 391 
15.3.8第三方工具393 
15.4保護ASP.NET網站應用的安全394 
15.4. 1強制使用SSL 394 
15.4.2 Cookie的保護395 
15.4.3保護會話Cookie和Forms身份驗證的安全395 
15.4.4部署http嚴格傳輸安全396 
15.5 Internet信息服務396 

第16章配置Nginx 402 
16.1以靜態鏈接OpenSSL方式安裝Nginx 402 
16.2啟用TLS 403 
16.3配置TLS協議403 
16.4配置密鑰和證書404 
16.5配置多密鑰405 
16.6通配符證書和多站點證書405 
16.7虛 安全託管406 
16.8默認站點返回錯誤消息406 
16.9前向保密407 
16.10 OCSP stapling 407 
16.10.1配置OCSP stapling 408 
16.10.2自定義OCSP響應409 
16.10.3手動配置OCSP響應409 
16.11配置臨時DH密鑰交換410 
16.12配置臨時ECDH密鑰交換410 
16.13 TLS會話管理411 
16.13.1獨立會話緩存411 
16.13.2獨立會話票證411 
16.13.3分佈式會話緩存412 
16.13.4分佈式會話票證412 
16.13.5禁用會話票證413 
16.14客戶端身份驗證413 
16.15緩解協議問題414 
16.15.1不安全的重新協商414 
16.15.2 BEAST 415 
16.15.3 CRIME 415 
16.16部署http嚴格傳輸安全415 
16.17 TLS緩衝區調優416 
16.18日誌記錄416 

第17章總結418




相關書籍

計算機概論 (Dale : Computer Science Illuminated, 5/e)

作者 Nell Dale John Lewis 施弼耀 施松村 譯

2016-09-01

國之重器出版工程 5G在智能電網中的應用

作者 陶志強 王勁 汪夢雲

2016-09-01

C++ Primer 習題集, 5/e (簡體中文版)

作者 斯坦利·李普曼 (Stanley B.Lippman) 約瑟·拉喬伊 (Josee Lajoie) 芭芭拉·默 (Barbara E. Moo)

2016-09-01